﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PPE_gestion_commercial
{
    public partial class AjoutClient : Form
    {
        // Définition des variables pour la connexion avec SQL Server
        SqlConnection connex;
        SqlCommand cmd;
        SqlDataReader dr;
        SqlDataReader dr2;

        public AjoutClient()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }

        // Fonction qui vérifie si les champs sur l'identité du client sont remplies
        private bool rempliIdentite()
        {
            bool okId = false;

            if (nomBox.Text != "" && prenomBox.Text != "")
            {
                okId = true;
            }

            return okId;
        }

        // Fonction qui vérifie si les champs sur l'adresse du client sont remplies
        private bool rempliAdresse()
        {
            bool okAd = false;

            if (adBox.Text != "" && villeBox.Text != "" && cpBox.Text != "" && villeBox.Text != "" && paysBox.Text != "")
            {
                okAd = true;
            }

            return okAd;
        }

        // Fonction qui vérifie si les champs sur les coordonnées téléphoniques et courriel du client sont remplies
        private bool rempliCoord()
        {
            bool okC = false;

            if (telBox.Text != "" && emailBox.Text != "")
            {
                okC = true;
            }

            return okC;
        }

        // Fonction qui se lance lorsqu'on clique sur le bouton Valider
        private void button1_Click(object sender, EventArgs e)
        {
            // Définition des variables
            bool verifId = false;
            bool verifAd = false;
            bool verifCo = false;
            string maxClient = "";

            // On effectue les vérifications
            verifId = rempliIdentite();
            verifAd = rempliAdresse();
            verifCo = rempliCoord();

            // Si tout est rempli, on va ajouter le client dans la Base de données (BDD)
            if (verifId && verifAd && verifCo)
            {
                // Connexion à la base
                string strconn = "server=78.241.116.47;Network Library=DBMSSOCN; database=gestion; User Id=Gestion; Password=gestion";
                connex = new SqlConnection();
                connex.ConnectionString = strconn;
                connex.Open();

                // On récupère l'identifiant du client maximal qui se trouve dans la BDD
                string sql = "SELECT max(idClient) FROM client";
                cmd = new SqlCommand(sql, connex);
                dr = cmd.ExecuteReader();
                dr.Read();
                if (dr[0] != DBNull.Value)
                {
                    maxClient = dr[0].ToString();
                }
                else maxClient = "0";
                dr.Close();

                int max = Convert.ToInt16(maxClient);

                max = max + 1;

                // On exécute la requête qui va ajouter le Client dans la BDD avec les données saisies 
                string sql2 = "insert into client values(" + max + ",'" + nomBox.Text.Replace("'", "''") + "','" + prenomBox.Text + "'," +
                    numBox.Text + ",'" + adBox.Text.Replace("'", "''") + "'," + cpBox.Text + ",'" + villeBox.Text.Replace("'", "''") + "','" + paysBox.Text.Replace("'", "''") + "'," + telBox.Text + ",'" +
                    emailBox.Text+"')";
                cmd = new SqlCommand(sql2, connex);
                dr2 = cmd.ExecuteReader();

                // Fermeture du curseur
                dr2.Close();

                // Fermeture de la connexion à la BDD
                connex.Close();

                // Affichage de l'action effectué
                MessageBox.Show("Votre client a bien été ajouté");
            }

            // Sinon on affiche là où il manque des données
            if (!verifId)
                MessageBox.Show("Vous n'avez pas remplit le nom ou le prenom du client");
            if (!verifAd)
                MessageBox.Show("Des informations ne sont pas remplies pour l'adresse du client");
            if (!verifCo)
                MessageBox.Show("Vous n'avez pas rensigné le numéro de téléphone ou l'adresse mail du client");

        }

        private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SuppProduit f8 = new SuppProduit("");
            f8.Show();
            this.Close();
        }
        private void supprimerToolStripMenuItem1_Click(object sender, EventArgs e)
        {   
            SuppClient f7 = new SuppClient("");
            f7.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            ModifClient f5 = new ModifClient();
            f5.Show();
            this.Close();
        }

        private void modifierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ModifProduit f6 = new ModifProduit();
            f6.Show();
            this.Close();
        }
        private void ajouterToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AjoutProduit f4 = new AjoutProduit();
            f4.Show();
            this.Close();
        }

        private void ajouterToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AjoutClient f2 = new AjoutClient();
            f2.Show();
            this.Close();
        }

        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }
    }
}
